TPTP Axioms File: SET008^2.ax


%------------------------------------------------------------------------------
% File     : SET008^2 : TPTP v8.2.0. Released v3.6.0.
% Domain   : Set Theory
% Axioms   : Definitions for relations
% Version  : [Ben08] axioms.
% English  :

% Refs     : [BS+05] Benzmueller et al. (2005), Can a Higher-Order and a Fi
%          : [BS+08] Benzmueller et al. (2007), Combined Reasoning by Autom
%          : [Ben08] Benzmueller (2008), Email to Geoff Sutcliffe
% Source   : [Ben08]
% Names    : Typed_Relation [Ben08]

% Status   : Satisfiable
% Syntax   : Number of formulae    :   42 (  21 unt;  21 typ;  21 def)
%            Number of atoms       :   51 (  25 equ;   0 cnn)
%            Maximal formula atoms :    1 (   1 avg)
%            Number of connectives :   88 (   3   ~;   2   |;  12   &;  62   @)
%                                         (   1 <=>;   8  =>;   0  <=;   0 <~>)
%            Maximal formula depth :    1 (   1 avg;  62 nst)
%            Number of types       :    2 (   0 usr)
%            Number of type conns  :  142 ( 142   >;   0   *;   0   +;   0  <<)
%            Number of symbols     :   22 (  21 usr;   0 con; 1-4 aty)
%            Number of variables   :   72 (  48   ^  18   !;   6   ?;  72   :)
% SPC      : 

% Comments : Requires SET008^0.
%------------------------------------------------------------------------------
thf(cartesian_product_decl,type,
    cartesian_product: ( $i > $o ) > ( $i > $o ) > $i > $i > $o ).

thf(cartesian_product,definition,
    ( cartesian_product
    = ( ^ [X: $i > $o,Y: $i > $o,U: $i,V: $i] :
          ( ( X @ U )
          & ( Y @ V ) ) ) ) ).

thf(pair_rel_decl,type,
    pair_rel: $i > $i > $i > $i > $o ).

thf(pair_rel,definition,
    ( pair_rel
    = ( ^ [X: $i,Y: $i,U: $i,V: $i] :
          ( ( U = X )
          | ( V = Y ) ) ) ) ).

thf(id_rel_decl,type,
    id_rel: ( $i > $o ) > $i > $i > $o ).

thf(id_rel,definition,
    ( id_rel
    = ( ^ [S: $i > $o,X: $i,Y: $i] :
          ( ( S @ X )
          & ( X = Y ) ) ) ) ).

thf(sub_rel_decl,type,
    sub_rel: ( $i > $i > $o ) > ( $i > $i > $o ) > $o ).

thf(sub_rel,definition,
    ( sub_rel
    = ( ^ [R1: $i > $i > $o,R2: $i > $i > $o] :
        ! [X: $i,Y: $i] :
          ( ( R1 @ X @ Y )
         => ( R2 @ X @ Y ) ) ) ) ).

thf(is_rel_on_decl,type,
    is_rel_on: ( $i > $i > $o ) > ( $i > $o ) > ( $i > $o ) > $o ).

thf(is_rel_on,definition,
    ( is_rel_on
    = ( ^ [R: $i > $i > $o,A: $i > $o,B: $i > $o] :
        ! [X: $i,Y: $i] :
          ( ( R @ X @ Y )
         => ( ( A @ X )
            & ( B @ Y ) ) ) ) ) ).

thf(restrict_rel_domain_decl,type,
    restrict_rel_domain: ( $i > $i > $o ) > ( $i > $o ) > $i > $i > $o ).

thf(restrict_rel_domain,definition,
    ( restrict_rel_domain
    = ( ^ [R: $i > $i > $o,S: $i > $o,X: $i,Y: $i] :
          ( ( S @ X )
          & ( R @ X @ Y ) ) ) ) ).

thf(rel_diagonal_decl,type,
    rel_diagonal: $i > $i > $o ).

thf(rel_diagonal,definition,
    ( rel_diagonal
    = ( ^ [X: $i,Y: $i] : ( X = Y ) ) ) ).

thf(rel_composition_decl,type,
    rel_composition: ( $i > $i > $o ) > ( $i > $i > $o ) > $i > $i > $o ).

thf(rel_composition,definition,
    ( rel_composition
    = ( ^ [R1: $i > $i > $o,R2: $i > $i > $o,X: $i,Z: $i] :
        ? [Y: $i] :
          ( ( R1 @ X @ Y )
          & ( R2 @ Y @ Z ) ) ) ) ).

thf(reflexive_decl,type,
    reflexive: ( $i > $i > $o ) > $o ).

thf(reflexive,definition,
    ( reflexive
    = ( ^ [R: $i > $i > $o] :
        ! [X: $i] : ( R @ X @ X ) ) ) ).

thf(irreflexive_decl,type,
    irreflexive: ( $i > $i > $o ) > $o ).

thf(irreflexive,definition,
    ( irreflexive
    = ( ^ [R: $i > $i > $o] :
        ! [X: $i] :
          ~ ( R @ X @ X ) ) ) ).

thf(symmetric_decl,type,
    symmetric: ( $i > $i > $o ) > $o ).

thf(symmetric,definition,
    ( symmetric
    = ( ^ [R: $i > $i > $o] :
        ! [X: $i,Y: $i] :
          ( ( R @ X @ Y )
         => ( R @ Y @ X ) ) ) ) ).

thf(transitive_decl,type,
    transitive: ( $i > $i > $o ) > $o ).

thf(transitive,definition,
    ( transitive
    = ( ^ [R: $i > $i > $o] :
        ! [X: $i,Y: $i,Z: $i] :
          ( ( ( R @ X @ Y )
            & ( R @ Y @ Z ) )
         => ( R @ X @ Z ) ) ) ) ).

thf(equiv_rel__decl,type,
    equiv_rel: ( $i > $i > $o ) > $o ).

thf(equiv_rel,definition,
    ( equiv_rel
    = ( ^ [R: $i > $i > $o] :
          ( ( reflexive @ R )
          & ( symmetric @ R )
          & ( transitive @ R ) ) ) ) ).

thf(rel_codomain_decl,type,
    rel_codomain: ( $i > $i > $o ) > $i > $o ).

thf(rel_codomain,definition,
    ( rel_codomain
    = ( ^ [R: $i > $i > $o,Y: $i] :
        ? [X: $i] : ( R @ X @ Y ) ) ) ).

thf(rel_domain_decl,type,
    rel_domain: ( $i > $i > $o ) > $i > $o ).

thf(rel_domain,definition,
    ( rel_domain
    = ( ^ [R: $i > $i > $o,X: $i] :
        ? [Y: $i] : ( R @ X @ Y ) ) ) ).

thf(rel_inverse_decl,type,
    rel_inverse: ( $i > $i > $o ) > $i > $i > $o ).

thf(rel_inverse,definition,
    ( rel_inverse
    = ( ^ [R: $i > $i > $o,X: $i,Y: $i] : ( R @ Y @ X ) ) ) ).

thf(equiv_classes_decl,type,
    equiv_classes: ( $i > $i > $o ) > ( $i > $o ) > $o ).

thf(equiv_classes,definition,
    ( equiv_classes
    = ( ^ [R: $i > $i > $o,S1: $i > $o] :
        ? [X: $i] :
          ( ( S1 @ X )
          & ! [Y: $i] :
              ( ( S1 @ Y )
            <=> ( R @ X @ Y ) ) ) ) ) ).

thf(restrict_rel_codomain_decl,type,
    restrict_rel_codomain: ( $i > $i > $o ) > ( $i > $o ) > $i > $i > $o ).

thf(restrict_rel_codomain,definition,
    ( restrict_rel_codomain
    = ( ^ [R: $i > $i > $o,S: $i > $o,X: $i,Y: $i] :
          ( ( S @ Y )
          & ( R @ X @ Y ) ) ) ) ).

thf(rel_field_decl,type,
    rel_field: ( $i > $i > $o ) > $i > $o ).

thf(rel_field,definition,
    ( rel_field
    = ( ^ [R: $i > $i > $o,X: $i] :
          ( ( rel_domain @ R @ X )
          | ( rel_codomain @ R @ X ) ) ) ) ).

thf(well_founded_decl,type,
    well_founded: ( $i > $i > $o ) > $o ).

thf(well_founded,definition,
    ( well_founded
    = ( ^ [R: $i > $i > $o] :
        ! [X: $i > $o,Z: $i] :
          ( ( X @ Z )
         => ? [Y: $i] :
              ( ( X @ Y )
              & ! [W: $i] :
                  ( ( R @ Y @ W )
                 => ~ ( X @ W ) ) ) ) ) ) ).

thf(upwards_well_founded_decl,type,
    upwards_well_founded: ( $i > $i > $o ) > $o ).

thf(upwards_well_founded,definition,
    ( upwards_well_founded
    = ( ^ [R: $i > $i > $o] :
        ! [X: $i > $o,Z: $i] :
          ( ( X @ Z )
         => ? [Y: $i] :
              ( ( X @ Y )
              & ! [W: $i] :
                  ( ( R @ Y @ Y )
                 => ~ ( X @ W ) ) ) ) ) ) ).

%------------------------------------------------------------------------------